import java.util.Scanner;

public class Demo {
    /*
      计算一个数字的平方根
      以字符串的形式提供数字
      返回平方根
      当用户输入的字符串为空，
      或者字符串无法转换成数字，或者转换成的数字小于0，都会抛出异常
     */
    public static void main(String[] args) throws Exception {
        while (true){
            try{
                System.out.print("请输入数字:");
                Scanner scanner=new Scanner(System.in);
                String str=scanner.next();
                double n=ErrorAndThrow.sqrt(str);
                System.out.println(str+"的平方根："+n);
            } catch (Exception e) {
                //将sqrt方法声明的可能抛出的Exception异常捕获
                //打印捕获的异常的堆栈信息，从堆栈信息中可以发现异常发生的位置和原因
                System.out.println("Gor a Exception:"+e.getMessage());
                e.printStackTrace();
                throw e;//不做进一步处理，将异常向外抛出
            }
            //将sqrt声明了可能会抛出的异常向外抛出，必须在方法声明中使用throws
            System.out.println("请输入数字:");
            Scanner scanner=new Scanner(System.in);
            String str=scanner.next();
            double n=ErrorAndThrow.sqrt(str);
            System.out.println(str+"的平方根："+n);

        }
    }

}
